﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections.ObjectModel;
using Entidades.Seguridad;
using Microsoft.SqlServer.Dts.Runtime;
using Vista.Sistema;
using Microsoft.SqlServer.Dts;
using Application = System.Windows.Forms.Application;


namespace Vista
{
    public partial class PanificadoraUNIPAN : Form
    {

        private Entidades.Seguridad.Usuario _Usuario;
        private ReadOnlyCollection<Entidades.Seguridad.Perfil> _Perfiles;
        private Entidades.Seguridad.Session oSession;

        public PanificadoraUNIPAN(Entidades.Seguridad.Usuario usuario)
        {
            _Usuario = usuario;
            InitializeComponent();
            oSession = new Entidades.Seguridad.Session();
            oSession.nombreusuario = usuario.IdUsuario;
            oSession.fecha_login = DateTime.Now.ToString("dd/MM/yyyy");
            oSession.hora_login = DateTime.Now.ToString("hh:mm:ss");
            _Perfiles = Controladora.Seguridad.CUIniciarSesion.ObtenerInstancia().RecuperarPerfilesGrupos(_Usuario);
            //this.Size = Screen.PrimaryScreen.WorkingArea.Size;
            //this.BringToFront();
            this.CenterToScreen();
            this.Text = "Panificadora UNIPAN";
        }
        
        private void gestionarGruposToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Se proddría pasar como parametro el usuario y luego recuperar el perfil.
            // Tambien se podria crear un session de usuario con singleton.
            Seguridad.FormGestionarGrupos oFormGrupos = new Seguridad.FormGestionarGrupos(_Usuario);
            oFormGrupos.ShowDialog();

        }

        private void gestionarUsuariosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Seguridad.FormGestionarUsuarios oFormUsuarios = new Seguridad.FormGestionarUsuarios(_Usuario);
            oFormUsuarios.ShowDialog();
        }

        private void gesrionarPerfilesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Seguridad.FormGestionarPerfiles oFormPerfiles = new Seguridad.FormGestionarPerfiles(_Usuario);
            oFormPerfiles.ShowDialog();
        }

        private void salirToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Esta seguero que desea salir de la aplicacion?", "Salir", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                oSession.fecha_logout = DateTime.Now.ToString("dd/MM/yyyy");
                oSession.hora_logout = DateTime.Now.ToString("hh:mm:ss");
                bool res = Controladora.Seguridad.CUGestionarsession.ObtenerInstancia().GuardarSessionUsuario(oSession);
                this.Dispose(true);
                Application.Exit();
            }
        }

        private void PanificadoraUNIPAN_FormClosed(object sender, FormClosedEventArgs e)
        {
            
        }

        private void PanificadoraUNIPAN_FormClosed_1(object sender, FormClosedEventArgs e)
        {
            if (MessageBox.Show("¿Esta seguero que desea salir de la aplicacion?", "Salir", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                oSession.fecha_logout = DateTime.Now.ToString("dd/MM/yyyy");
                oSession.hora_logout = DateTime.Now.ToString("hh:mm:ss");
                bool res = Controladora.Seguridad.CUGestionarsession.ObtenerInstancia().GuardarSessionUsuario(oSession);
                this.Dispose(true);
                Application.Exit();
            }
        }

        private void gestionarOrdenProduccionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Ver de enviar solo el usuario y recuperar el perfil, creo que esto soluciona el tema
            Sistema.FormGestionarOrden oFormGestOrdenes = new Sistema.FormGestionarOrden(_Usuario);
            oFormGestOrdenes.ShowDialog();
        }

        private void cambiarContraseñaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Seguridad.FormCambiarClave oFormCambiarClave = new Seguridad.FormCambiarClave(_Usuario);
            oFormCambiarClave.ShowDialog();
        }

        private void respaldoManualToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Seguridad.FormRespaldo oFormRespaldo = new Seguridad.FormRespaldo();
            oFormRespaldo.ShowDialog();
        }

        private void gestionarMateriaPrimaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Agregar el perfil del usuario
            Sistema.FormGestionarMateriaPrima oFormGestionarMateriaPrima = new FormGestionarMateriaPrima(_Usuario);
            oFormGestionarMateriaPrima.ShowDialog();
        }

        private void gestionarTipoDeMateriaPrimaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Sistema.FormGestionarTipoMateriaPrima oFormGestionarTipoMateriaPrima = new FormGestionarTipoMateriaPrima(_Usuario);
            oFormGestionarTipoMateriaPrima.ShowDialog();
        }


        /*private void PanificadoraUNIPAN_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("¿Esta seguero que desea salir de la aplicacion?", "Salir", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                oSession.fecha_logout = DateTime.Now.ToString("dd/MM/yyyy");
                oSession.hora_logout = DateTime.Now.ToString("hh:mm:ss");
                bool res = Controladora.Seguridad.CUGestionarsession.ObtenerInstancia().GuardarSessionUsuario(oSession);
                this.Dispose(true);
                Application.Exit();
            }
        }*/
    }
}
